import java.util.ArrayList;
import java.util.List;


public class YHTriangle {
	 public List<List<Integer>> generate(int numRows) {
	        List<List<Integer>>result=new ArrayList<List<Integer>>();
	  for(int i=0;i<numRows;i++){
		  List<Integer>temp=new ArrayList<Integer>();
		  if(i==0){
			  temp.add(new Integer(1));
			  result.add(temp);
			  continue;
		  }
		  for(int j=0;j<i+1;j++){
			  if(j==0){
				  temp.add(new Integer(1));
				  continue;
			  }{
				  List<Integer> last=result.get(i-1);
				  if(j==last.size()){
					  temp.add(last.get(j-1));
				  }else{
					  temp.add(last.get(j-1)+last.get(j));
				  }
			  }
              			  
		  }
		  result.add(temp);
	  }
	  
	  return result;
	 }
	 
	 public List<Integer> getRow(int rowIndex) {
		 if(rowIndex<=0)return new ArrayList<Integer>();
		  List<List<Integer>>result=new ArrayList<List<Integer>>();
		  for(int i=0;i<=rowIndex;i++){
			  List<Integer>temp=new ArrayList<Integer>();
			  if(i==0){
				  temp.add(new Integer(1));
				  result.add(temp);
				  continue;
			  }
			  for(int j=0;j<i+1;j++){
				  if(j==0){
					  temp.add(new Integer(1));
					  continue;
				  }{
					  List<Integer> last=result.get(i-1);
					  if(j==last.size()){
						  temp.add(last.get(j-1));
					  }else{
						  temp.add(last.get(j-1)+last.get(j));
					  }
				  }
	              			  
			  }
			  result.add(temp);
	    }
		  return result.get(rowIndex);
	 }
}
